package com.yunchang.springboot.mapper.caravan;

import com.yunchang.springboot.config.BaseDao;
import com.yunchang.springboot.models.DO.CaravanPurchaseData;
import com.yunchang.springboot.models.DO.CaravanPurchaseDataItem;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author wanglongwei
 * @data 2019/9/3 17:11
 */
public interface CaravanPurchaseDataMapper extends BaseDao<CaravanPurchaseData> {

    /**
     * 根据日期删除数据
     *
     * @param date
     * @return
     */
    int deleteByDate(@Param("date") String date);

    /**
     * 插入对应order的items
     *
     * @param itemsList
     * @return
     */
    int insertItemsList(@Param("itemsList") List<CaravanPurchaseDataItem> itemsList);

    /**
     * 根据purchaseId删除items
     *
     * @param purchaseId
     * @return
     */
    int deletePurchaseDataItemByPurchaseId(@Param("purchaseId")String purchaseId);

    /**
     * 判断当前的采购单是否存在
     * */
    CaravanPurchaseData getOneInfoByPurchaseId(@Param("purchaseId")String purchaseId);

    /**
     * 根据采购单号和sku来确定一条采购单数据(获取一条明细)
     * */
    CaravanPurchaseDataItem getPurchaseDataItemByPurchaseIdAndSku(@Param("purchaseId")String purchaseId,@Param("sku")String sku);

    /**
     * 获得所有已付款且处理状态为新增的采购单数据
     * */
    List<CaravanPurchaseData> getPurchasingAndNewData();

    /**
     * 获得所有指定采购单id且处理状态为新增的采购单明细数据
     * */
    List<CaravanPurchaseDataItem> getNewItemDataByPurchaseId(@Param("puchaseId")String puchaseId);

    /**
     * 更新采购单的处理状态
     * @param purchaseData
     * @return
     */
    int updateHandleStatus(@Param("purchaseData") CaravanPurchaseData purchaseData);

    /**
     * 测试用，获得去年12月和今年1月的 获得所有已付款且处理状态为新增的采购单数据
     * @return
     */
    List<CaravanPurchaseData> getPurchasingAndNewDataInTwoMonth();
}
